

/*

更新widget

1. 使用 setState(() { }); 更新自己,
可通过mounted判断是否仍然挂载到Widget树上
if (mounted) {
          setState(() {
            _result = 'isSuccessful:${response.isSuccessful}';
          });
}

主要:
setState(...) 代码不能是异步的
错误:
setState(() async {
  await Future.delayed(const Duration(seconds: 5));
});

2.使用 StatefulBuilder 通知更新内部
StatefulBuilder(
  builder: (BuildContext context, StateSetter innerSetState) {
    int count = 0;

    return Column(
      children: [
        Text('Count: $count'),
        RaisedButton(
          onPressed: () {
            innerSetState(() {
              count++;
            });
          },
          child: Text('Increment'),
        ),
      ],
    );
  },
);

3.使用key 外部通知 内部XState更新

GlobalKey<_MyChildState> _childKey = GlobalKey();
XPage( XState(), key: _childKey)
//调用其内部方法XXX
_childKey.currentState.XXX('Updated Text');
//通知更新内部
_childKey.currentState.setState((){});


其他:
https://pub-web.flutter-io.cn/packages/flutter_bloc

 */